113. 路径总和 II

113. 路径总和 II

Similar Question

leading to the advanced question

Solution Tips

方案一: DFS

前序遍历,直到叶节点

var pathSum = function (root, sum) {
    if (root === null) return 0
    const res = []
    dfs(root, sum)
    return res
    function dfs(node, sum, path = []) {
        if (node === null) return
        path.push(node.val)
        // 保证是叶节点
        if (sum === node.val && node.left == null && node.right == null) res.push([...path])
        dfs(node.left, sum - node.val, path)
        dfs(node.right, sum - node.val, path)
        path.pop()
    }
}

console.log(pathSum(bst.root(), 1))

方案二: BFS

用栈代替递归调用栈,参考 I